A Controller Area Network (CAN) is an asynchronous serial bus network that connects devices, sensors, and actuators in various control applications (e.g., automotive, industrial automation, avionics, medical and office equipment, consumer appliances, etc.). Different CAN networks have different performance characteristics. Automotive CAN networks, for example, may be divided into two distinct categories—body control and powertrain. Body control networks enable communications among passenger comfort and convenience systems, and are typically less resource-intensive than powertrain networks, which service engine and transmission control.
Over the course of the last decade, three major physical layer designs have emerged in most CAN applications. All three communicate using a differential voltage on a pair of wires and are commonly referred to as: high-speed CAN (e.g., at rates of up to 1 Mbps), low-speed CAN (e.g., at rates of up to 125 Kbps), and Flexible Data Rate (FD) CAN (e.g., up to 8 Mbps). Other CAN interfaces, however, may communicate using a single wire (e.g., at rates of up to 33.3 Kbps). Generally speaking, each node in a CAN network may be able to transmit and receive messages over a CAN bus.
In conventional CAN systems, any type of transmission error causes a message under transmission to be halted or interrupted (by a transmitting node) as soon as the error is detected by any receiving node in the CAN network. A known method for the transmitting node to prevent the reception of a message under transmission is to hold its output in a recessive or dominant state until a receiver node detects a bus error condition and issues an error frame.
The inventors hereof have recognized, however, that the foregoing method makes it difficult for a CAN system to properly discriminate the cause of the error, which in turn affects error statistics and reporting. For instance, a conventional CAN system cannot differentiate between a CAN bus error that takes place under otherwise normal communications and an error introduced by a transmitter due to its internal failure that nonetheless allows transmission of a corrupted message.